package com.mesystem.dao.impl;

import java.util.List;

import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import com.mesystem.dao.OpcionDAO;
import com.mesystem.dao.mapper.OpcionMapper;
import com.mesystem.dto.OpcionDTO;

public class OpcionDaoImpl extends SimpleJdbcDaoSupport implements OpcionDAO {
	
	private static String SQL;

	public List<OpcionDTO> listaOpcionesPadre(int idRol) throws Exception {
		SQL = "SELECT a.id, a.descripcion,a.url,a.id_padre FROM bd_mesystem.tb_opciones a " +
				"INNER JOIN bd_mesystem.tb_opcionesxrol b ON a.id = b.id_opcion " +
				"WHERE b.id_rol = :idRol AND a.id_padre IS NULL AND a.activo = 1 order by id";
		MapSqlParameterSource parameterInput = new MapSqlParameterSource();
		parameterInput.addValue("idRol", idRol);
		
		return getSimpleJdbcTemplate().query(SQL, new OpcionMapper(), parameterInput);
	}
	
	public List<OpcionDTO> listaOpcionesHijas(int idRol) throws Exception {
		SQL = "SELECT a.id, a.descripcion,a.url,a.id_padre FROM bd_mesystem.tb_opciones a " +
				"INNER JOIN bd_mesystem.tb_opcionesxrol b ON a.id = b.id_opcion " +
				"WHERE b.id_rol = :idRol AND a.id_padre IS NOT NULL AND a.activo = 1 order by orden";
		MapSqlParameterSource parameterInput = new MapSqlParameterSource();
		parameterInput.addValue("idRol", idRol);
		
		return getSimpleJdbcTemplate().query(SQL, new OpcionMapper(), parameterInput);
	}

}
